Önden yürütüm
Bu madde, öksüz maddedir; zira herhangi bir maddeden bu maddeye verilmiş bir bağlantı yoktur. (Eylül 2022) |
Bu maddede kaynak listesi bulunmasına karşın metin içi kaynakların yetersizliği nedeniyle bazı bilgilerin hangi kaynaktan alındığı belirsizdir. (Mart 2020) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin) |
Önden yürütüm işlemcinin ön bellekte bulamama durumunda boşa harcayacağı çevrimlerin beklemekte olan buyrukların önceden yürütülmesi ile faydalı şekilde kullanılması esasına dayalı bir bilgisayar mimarisi tekniğidir. Bu şekilde önceden yürütülecek olan buyruklar ile gelecekte oluşacak olan önbellekte bulamama durumları tespit edilerek, işlemcinin boşta olan yürütüm kaynakları kullanılarak faydalı buyruk ve veri ön yüklemeleri yapılması sağlanır.
Bu tekniğin getireceği donanım masrafı, işlemcinin önden yürütüm moduna geçmeden önce yazmaç öbeğinin durumunu kaydetmesi ihtiyacından ileri gelmektedir. Bu ihtiyaç, işlemci önden yürütüm modundan çıkıp normal yürütüme geçerken, önden yürütüm esnasında hesaplanan bütün sonuçlar geçersiz sayılacağından, çok küçük donanım kullanılarak giderilebilir.
Dallanma tahmin edici önden yürütme esnasında oluşan dallanma sonuçlarını kullanarak başarısını artırabilir.
Önden yürütüm başlangıçta sıralı yürütüm yapan işlemciler için tasarlanmış olmasına rağmen, sırasız yürütüm yapan işlemcilerde çok büyük buyruk pencerelerine alternatif olarak kullanılabilir.
Önden yürütüme giriş
[değiştir | kaynağı değiştir]Önden yürütüm tekniği kullanan bir işlemci 2. seviye önbellekte bir bulamama durumumu tespit ettiğinde hatalı giriş yapan buyruğun adresini kaydederek önden yürütüm moduna geçer. İşlemci yazmaç öbeğinin o andaki durumunu işaretler. Bellek hiyerarşisinin durumu kaydet(store) işlemleri devre dışı bırakılarak işaretlenir. Kaydetme işlemleri adres hesaplama ve bulma durumu kontrolü açısından serbesttir fakat belleğe yazma işlemi yapmalarına izin verilmez.
Çünkü önbellekte bulunamayan adresten dönecek değer önden yürütüm esnasında bilinemez, bu durumda önden yürütülen buyrukların hatalı veriyi bağımlı olmaları mümkün olur. Bu durumlar yazmaç öbeğindeki her yazmaca "invalid(hatalı)" veya INV biti eklenerek işaretlenir. Önden yürütüme girilmesine sebep olan bir load(yükle) buyruğu ise bu buyruğun varış yazmacı da INV olarak işaretlenir.
Önceden yürütülen buyruklar
[değiştir | kaynağı değiştir]Önbellekte ki bulamama durumundan sonra işlemci yürütmesine devam eder fakat bütün sonuçlar geçicidir ve sadece önyükleme yapmak için kullanılırlar. Bazı yazmaçların hatalı olarak işaretlenmesiyle işlemciye hangi yazmaçların güvenilir olduğu bilgisi sağlanmış olur. Hatalı kaynaklara bağlı olan dallanma buyrukları gidecekleri yerler doğru olarak tahmin edilemeyeceğinden çözümlenmezler. Normal durumda tahmin başarısının yüksek oranlara çıkabilmesi için dallanma sonuçları kayıt altına alınır.
Önden yürütümden çıkış
[değiştir | kaynağı değiştir]Önbellekte bulunamayan veri ana bellekten döndüğünde, işaretlenen nokta geri yüklenir ve işlemci normal yürütmesine devam eder.